def outer(k,b):
    def inner(x):
        return k*x+b
    return inner
# 调用
func=outer(3,7)     #f(x)=3x+7
print(func(3))
print(func(2))
# 程序代码可以重复使用，如果没有闭包（closure）,就需要传递k,b,x参数
# 所以closure可以让程序设计更有效率，同时未来扩充程序可以更容易移植
func=outer(1,3)     #f(x)=x+3
print(func(3))
print(func(2))